//用户管理模块的接口
import request from '@/utils/request'
import type { UserResponseData, User, AllRoleResponseData, SetRoleData } from './type'

enum API {
    //获取全部已有用户账号信息接口
    ALLUSER_URL = 'admin/acl/user/',
    //添加新的用户账号接口
    ADDUSER_URL = 'admin/acl/user/save',
    //更新已有的用户账号信息接口
    UPDATEUSER_URL = 'admin/acl/user/update',
    //获取全部职位，当前账号拥有的职位接口
    ALLROLE_URL = 'admin/acl/user/toAssign/',
    //给已有的用户分配职位的接口
    SETROLE_URL = 'admin/acl/user/doAssignRole',
    //删除用户账号的接口
    DELETEUSER_URL = 'admin/acl/user/remove/',
    //批量删除用户账号的接口
    DELETEMANYUSER_URL = 'admin/acl/user/batchRemove'
}

//获取用户账号信息的接口方法
export const reqUserInfo = (page: number, limit: number, username: string) =>
    request.get<any, UserResponseData>(API.ALLUSER_URL + `${page}/${limit}/?username=${username}`)
//添加用户账号与更新用户账号信息的接口方法
export const reqAddOrUpdateUser = (data: User) => {
    if(data.id) {
        return request.put<any, any>(API.UPDATEUSER_URL, data)
    } else {
        return request.post<any, any>(API.ADDUSER_URL, data)
    }
}
//获取全部职位，当前账号拥有的职位接口方法
export const reqAllRole = (userId: number) =>
    request.get<any, AllRoleResponseData>(API.ALLROLE_URL + userId)
//给已有的用户分配职位的接口方法
export const reqSetRole = (data: SetRoleData) => request.post<any, any>(API.SETROLE_URL, data)
//删除用户账号的接口方法
export const reqDeleteUser = (userId: number) => request.delete<any, any>(API.DELETEUSER_URL + userId)
//批量删除用户账号的接口方法
export const reqDeleteManyUser = (idList: number[]) => request.delete<any, any>(API.DELETEMANYUSER_URL, {data: idList})
